package com.shop.shoppingmall.service;

import com.shop.shoppingmall.entity.ShProduct;
import com.shop.shoppingmall.entity.ShProductSpecs;
import com.shop.shoppingmall.entity.ShopSpecs;
import com.shop.shoppingmall.util.api.vo.Result;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * (ShProduct)表服务接口
 *
 * @author makejava
 * @since 2020-09-07 17:09:21
 */
public interface ShProductService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ShProduct queryById(String id);


    /**
     * 新增数据
     *
     * @param shProduct 实例对象
     * @return 实例对象
     */
    Result insert(List<ShProduct> shProduct, List<ShProductSpecs> list,List<ShopSpecs> shopSpecs);

    /**
     * 修改数据
     *
     * @param shProduct 实例对象
     * @return 实例对象
     */
    Result update(ShProduct shProduct);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(String id);

    Result selectAllProduct(String businessId ,int page);

    Result selectProductById1(String productId,HttpServletRequest request);

     Result selectSpecs(String productId ,String productSpecs);

    /**
     * 添加商品新规格
     * @param shProductId
     * @param list
     * @param shopSpecs
     * @return
     */
    Result insertSpecs(String shProductId, List<ShProductSpecs> list,List<ShopSpecs> shopSpecs);

    /**
     * 根据各级分类id查询该分类下的所有商品
     * @param map
     * @return
     */
    Result listAll(Map map);

    /**
     * 后台查询商品列表
     * @param map
     * @return
     */
    Result queryList(Map map);


    Result findCourier(String courierNum);

    Result selectByList(Map map);

    Result cartes(List<String> listSub1,List<String> listSub2);

    /**
     * 查询店铺详细信息
     * @param businessId
     * @param userId
     * @return
     */
    Result queryByBusId(String businessId,String userId);

    Result selectByBusId(HttpServletRequest request);

    /**
     * 后台根据商品id查询商品详细信息
     * @param productId
     * @return
     */
    Result selectProduct(String productId);

    /**
     * 随机从数据库中取6条数据
     * @return
     */
    Result selectRandProduct();


}
